
#include "stdint.h"


#ifdef KUAISUN_EXPORTS
#define KUAISUN_API(result) __declspec(dllexport) result __stdcall
#else
#define KUAISUN_API(result) __declspec(dllimport) result __stdcall
#endif


#ifdef __cplusplus 
extern "C" {
#endif

	typedef float		RealNumber;
	typedef uint16_t	Index;
	typedef int16_t		Offset;

	typedef int32_t		Integer;

	typedef struct {
		RealNumber x, y, z;
	} XYZ;


	typedef struct {
		RealNumber ax, bx, by, cx, cy, cz;
	} PBC;

	typedef struct {
		PBC*		pbc;
		RealNumber* coords;
		RealNumber* speeds;
		RealNumber* forces;
		RealNumber* masses;
		RealNumber* charges;

		RealNumber* energies;
		RealNumber* parameters;

		Offset		gapCoords;
		Offset		gapSpeeds;
		Offset		gapForces;
		Offset		gapMasses;
		Offset		gapCharges;
	} PhaseSpace;


	Integer countBufferSize(Index nAtoms, Index nScalar);

	Integer countBufferSize(Index nAtoms, Index nScalar);





#ifdef __cplusplus 
}
#endif
